
package com.intretech.umsin.system.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.intretech.umsin.common.entity.Assignment;
import com.intretech.umsin.common.excel.converter.LocalDateTimeConverter;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;

/**
* @version V1.0
* 用户信息:sys_user 对应的VO模型类.
* @ClassName: SysUserVo
* @Description: 用户信息:sys_user 对应的VO模型类.
* @author: 李启联
* @date:   2022-8-16 16:25:08
* @Copyright: Copyright (c) 2022
*/
@ApiModel("用户信息")
@ExcelIgnoreUnannotated
public class SysUserVo implements Assignment, Serializable {

    // ID
    @ApiModelProperty(value = "ID" ,dataType="bigint(19)" ,required= true)
    @ExcelProperty(value = "ID")
    private Long id;

    // 部门/组织ID
    @ApiModelProperty(value = "部门/组织ID" ,dataType="bigint(19)" ,required= false)
    @ExcelProperty(value = "部门/组织ID")
    private Long deptId;

    // 部门/组织ID
    @ApiModelProperty(value = "部门/组织名称" ,dataType="bigint(19)" ,required= false)
    @ExcelProperty(value = "部门/组织名称")
    private String deptName;

    // 用户名
    @ApiModelProperty(value = "用户名" ,dataType="varchar(255)" ,required= false)
    @ExcelProperty(value = "用户名")
    private String username;

    // 账户
    @ApiModelProperty(value = "账户" ,dataType="varchar(255)" ,required= false)
    @ExcelProperty(value = "账户")
    private String account;

    // 昵称
    @ApiModelProperty(value = "昵称" ,dataType="varchar(255)" ,required= false)
    @ExcelProperty(value = "昵称")
    private String nickName;

    // 性别
    @ApiModelProperty(value = "性别" ,dataType="varchar(2)" ,required= false)
    @ExcelProperty(value = "性别")
    private String sex;

    // 手机号码
    @ApiModelProperty(value = "手机号码" ,dataType="varchar(20)" ,required= false)
    @ExcelProperty(value = "手机号码")
    private String phone;

    // 座机
    @ApiModelProperty(value = "座机" ,dataType="varchar(20)" ,required= false)
    @ExcelProperty(value = "座机")
    private String tel;

    // 邮箱
    @ApiModelProperty(value = "邮箱" ,dataType="varchar(255)" ,required= false)
    @ExcelProperty(value = "邮箱")
    private String email;

    // 头像地址
    @ApiModelProperty(value = "头像地址" ,dataType="varchar(255)" ,required= false)
    @ExcelProperty(value = "头像地址")
    private String headImgUrl;

    // 密码
    @ApiModelProperty(value = "密码" ,dataType="varchar(255)" ,required= false)
    @ExcelProperty(value = "密码")
    private String password;

    // 是否为admin账号
    @ApiModelProperty(value = "是否为admin账号" ,dataType="bit(1)" ,required= false)
    @ExcelProperty(value = "是否为admin账号")
    private Boolean admin;

    // 状态：1启用、0禁用
    @ApiModelProperty(value = "状态：1启用、0禁用" ,dataType="bit(1)" ,required= false)
    @ExcelProperty(value = "状态：1启用、0禁用")
    private Boolean enabled;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @ApiModelProperty(value = "生日" ,dataType="datetime()" ,required= false)
    @ExcelProperty(value = "生日",converter = LocalDateTimeConverter.class)
    private java.time.LocalDateTime birthday;

    // 用户类型(sys_user系统用户 app_user app端用户)
    @ApiModelProperty(value = "用户类型(sys_user系统用户 app_user app端用户)" ,dataType="varchar(10)" ,required= false)
    @ExcelProperty(value = "用户类型(sys_user系统用户 app_user app端用户)")
    private String userType;

    // 版本号
    @ApiModelProperty(value = "版本号" ,dataType="int(10)" ,required= false)
    @ExcelProperty(value = "版本号")
    private Integer version;

    // 租户ID
    @ApiModelProperty(value = "租户ID" ,dataType="varchar(128)" ,required= false)
    @ExcelProperty(value = "租户ID")
    private String tenantId;

    // 创建人
    @ApiModelProperty(value = "创建人" ,dataType="varchar(64)" ,required= false)
    @ExcelProperty(value = "创建人")
    private String creator;

    // 修改人
    @ApiModelProperty(value = "修改人" ,dataType="varchar(64)" ,required= false)
    @ExcelProperty(value = "修改人")
    private String modifier;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @ApiModelProperty(value = "创建时间" ,dataType="datetime()" ,required= false)
    @ExcelProperty(value = "创建时间",converter = LocalDateTimeConverter.class)
    private java.time.LocalDateTime createTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @ApiModelProperty(value = "修改时间" ,dataType="datetime()" ,required= false)
    @ExcelProperty(value = "修改时间",converter = LocalDateTimeConverter.class)
    private java.time.LocalDateTime modifyTime;

    public Long getId(){
    return this.id;
    }

    public void setId(Long id){
    this.id = id;
    }
    public Long getDeptId(){
    return this.deptId;
    }

    public void setDeptId(Long deptId){
    this.deptId = deptId;
    }
    public String getUsername(){
    return this.username;
    }

    public String getDeptName() {
        return deptName;
    }
    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }

    public void setUsername(String username){
    this.username = username;
    }
    public String getAccount(){
    return this.account;
    }

    public void setAccount(String account){
    this.account = account;
    }
    public String getNickName(){
    return this.nickName;
    }

    public void setNickName(String nickName){
    this.nickName = nickName;
    }
    public String getSex(){
    return this.sex;
    }

    public void setSex(String sex){
    this.sex = sex;
    }
    public String getPhone(){
    return this.phone;
    }

    public void setPhone(String phone){
    this.phone = phone;
    }
    public String getTel(){
    return this.tel;
    }

    public void setTel(String tel){
    this.tel = tel;
    }
    public String getEmail(){
    return this.email;
    }

    public void setEmail(String email){
    this.email = email;
    }
    public String getHeadImgUrl(){
    return this.headImgUrl;
    }

    public void setHeadImgUrl(String headImgUrl){
    this.headImgUrl = headImgUrl;
    }
    public String getPassword(){
    return this.password;
    }

    public void setPassword(String password){
    this.password = password;
    }
    public Boolean getAdmin(){
    return this.admin;
    }

    public void setAdmin(Boolean admin){
    this.admin = admin;
    }
    public Boolean getEnabled(){
    return this.enabled;
    }

    public void setEnabled(Boolean enabled){
    this.enabled = enabled;
    }
    public java.time.LocalDateTime getBirthday(){
    return this.birthday;
    }

    public void setBirthday(java.time.LocalDateTime birthday){
    this.birthday = birthday;
    }
    public String getUserType(){
    return this.userType;
    }

    public void setUserType(String userType){
    this.userType = userType;
    }
    public Integer getVersion(){
    return this.version;
    }

    public void setVersion(Integer version){
    this.version = version;
    }
    public String getTenantId(){
    return this.tenantId;
    }

    public void setTenantId(String tenantId){
    this.tenantId = tenantId;
    }
    public String getCreator(){
    return this.creator;
    }

    public void setCreator(String creator){
    this.creator = creator;
    }
    public String getModifier(){
    return this.modifier;
    }

    public void setModifier(String modifier){
    this.modifier = modifier;
    }
    public java.time.LocalDateTime getCreateTime(){
    return this.createTime;
    }

    public void setCreateTime(java.time.LocalDateTime createTime){
    this.createTime = createTime;
    }
    public java.time.LocalDateTime getModifyTime(){
    return this.modifyTime;
    }

    public void setModifyTime(java.time.LocalDateTime modifyTime){
    this.modifyTime = modifyTime;
    }

    public SysUserVo(){
    }

    @Override
    public String toString() {
        return "SysUserVo{" +
                "id=" + id +
                ", deptId=" + deptId +
                ", deptName=" + deptName +
                ", username='" + username + '\'' +
                ", account='" + account + '\'' +
                ", nickName='" + nickName + '\'' +
                ", sex='" + sex + '\'' +
                ", phone='" + phone + '\'' +
                ", tel='" + tel + '\'' +
                ", email='" + email + '\'' +
                ", headImgUrl='" + headImgUrl + '\'' +
                ", password='" + password + '\'' +
                ", admin=" + admin +
                ", enabled=" + enabled +
                ", birthday=" + birthday +
                ", userType='" + userType + '\'' +
                ", version=" + version +
                ", tenantId='" + tenantId + '\'' +
                ", creator='" + creator + '\'' +
                ", modifier='" + modifier + '\'' +
                ", createTime=" + createTime +
                ", modifyTime=" + modifyTime +
                '}';
    }
}